import axios from 'axios';
import { ElMessage } from "element-plus";
import { getToken, getUsername } from "@/utils/app";

const BASEURL = process.env.NODE_ENV === 'production' ? '' : '/api';
const service = axios.create({
    baseURL: BASEURL,
    timeout: 15000 // 超时时间
});

/**
 * 请求拦截器
 */
service.interceptors.request.use(function (config) {
    // 设置请求头
    config.headers['Token'] = getToken();
    config.headers['Username'] = getUsername();
    return config;
}, function (error) {
    // 请求错误
    return Promise.reject(error);
});

/**
 * 响应拦截器
 */
service.interceptors.response.use(function (response) {
    // 处理响应数据
    let data = response.data;
    if (data.resCode !== 0) {
        ElMessage.error(data.message);
        return Promise.reject(data);
    } else {
        return response;
    }
}, function (error) {
    // 响应错误
    return Promise.reject(error);
});

export default service;